# #创建集合
# s = {1, 2, 3, 4}
#
# ss = set('1234')
# print(type(s))
# print(type(ss))
# #集合的添加和删除
# s.add(6)
# print(s)
# s.pop()
# print(s)
# s.remove(4)
# print(s)

# print('---------------------------------------------')

# # tuple1 = (12, 34, 56)
# # tuple2 = ('abc', 'mn')
# #
# # tuple1[0] = 100
# # tuple1[0] = 200
# #
# # tuple3 = tuple1 + tuple2
# # print(tuple3)
#
# print('---------------------------------------------')
#
# t1 = (1, 2, 3)
# t2 = ('a', 'b', 'c')
# t3 = t1 + t2
# print(t3)
#
# print('---------------------------------------------')
#
# # t4 = (1, 2, 3, [4, 5, 6])
# # del t4
# # print(t4)
#
# print('---------------------------------------------')
#
# n = input('请输入联系人姓名：')
# t = input('请输入联系人电话：')
# e = input('请输入联系人邮箱：')
# a = input('请输入联系人地址：')
# t1 = ('姓名：', n, '电话：', t, '邮箱：', e, '地址：', a)
# print(t1)
#
# print('---------------------------------------------')
#
# # 创建空列表
# l1 = []
# print(l1)
#
# # 创建带有元素的列表
# l2 = [1, 2]
# print(l2)
# print(type(l2))
#
# # 使用list（）函数创建空列表
# l3 = list()
# print(l3)
#
# # 使用list（）函数将字符串转化成列表
# l4 = list('Hello world')
# print(l4)
#
# # 使用list（）函数将元组转化成列表
# t5 = tuple('hello')
# print(t5)
# l5 = list(t5)
# print(l5)
#
# # 使用list（）函数将range函数转化成列表
# l6 = list(range(5))
# print(l6)
#
# print('---------------------------------------------')
#
# # # 访问列表中的元素
# # 使用索引进行访问单个元素
# l7 = [1, 2, 3, 4, 'p', 'w', 'r']
# # 使用正索引访问p元素
# print(l7[4])
# # 使用负索引访问w元素
# print(l7[-2])
#
# print('---------------------------------------------')
#
# # 使用切片访问元素的格式：
# l8 = ['p', 'y', 't', 'j', 'o', 'n']
# # 使用正数切片，截取索引为2,3,4的元素，默认步长为1
# print(l8[2:5])
# # 取前三个元素
# print(l8[:3])
# # 取后三个元素
# print(l8[3:])
# # 使用正数切片，截取索引为1-5的元素，步长为2
# print(l8[1::2])
# # 使用负数切片
# print(l8[-3:1])
# # 步长如果是负数，即从右向左提取元素
# print(l8[::-1])
#
# print('---------------------------------------------')
#
# # 遍历列表
# # 使用for循环遍历列表
# l9 = [1, 2, 3, 4]
# for i in l9:
#     print(i)
#
# print('---------------------------------------------')
#
# # 修改列表元素
# # 修改单个元素
# l10 = [10, 25, 55, 95, 3, 8, 0]
# # 将索引为2的元素值修改为100
# l10[2] = 100
# print(l10)
#
# # 修改多个元素
# l11 = [10, 25, 55, 95, 3, 8, 0]
# # 修改第 1-4 个元素的值（不包括第4个元素）
# l11[1: 4] = [14, 20, 6]
# print(l11)
#
# print('---------------------------------------------')
#
# # 列表中添加元素
# # append（）用于在列表的末尾追加元素
# l12 = ['a', 'b', 'c']
# l12.append('f')
# print(l12)
# # 列表添加列表
# l12.append(['e', 'f'])
# print(l12)
#
# print('---------------------------------------------')
#
# # extend()在列表的末尾一次添加多个元素
# l13 = ['a', 'b', 'c']
# l13.extend('d')
# print(l13)
# # 列表添加列表
# l13.extend(['e', 'f', 'g', 'h'])
# print(l13)
# l13.extend('world')
# print(l13)
#
# print('---------------------------------------------')
#
# l14 = ['Python', 'c', 'Java']
#
# l14.insert(2, 'go')
# print(l14)
#
# print('---------------------------------------------')
#
# # remove()删除特定元素
# l15 = ['a', 'b', 'c', 'd', 'a']
# l15.remove('b')
# print(l15)
#
# # 若元素不在列表中，删除会报错
# l15.remove('f')
#
# # pop()删除指定索引处位置的元素
# l16 = [10, 2, 4, 6, 8, 'a']
# l16.pop(3)
# print(l16)
#
# # 删除最后一个元素
# l16.pop()
# print(l16)
#
# print('---------------------------------------------')
#
# # del 删除单个元素
# l17 = ['a', 'b', 2, 3, 5, 9]
# del l17[4]
# print(l17)
#
# # del 删除一段连续的元素，使用切片形式
# del l17[1:3]
# print(l17)
#
# # 清空列表用clear（）方法
# l18 = [6, 8, 'a', 0]
# l18.clear()
# print(l18)
#
# print('---------------------------------------------')
#
# # # 任务
# # # 创建两个空列表name_list和phone_list，用于存储联系人姓名和电话；
# # # 向列表中添加联系人信息；
# # # 输入联系人编号修改信息；
# # # 输入联系人编号删除信息；
# # # # 使用clear()清空通讯录。name_list=['张三'， ’李四', '王五', ‘maliu'],phone_list=[123, 236, 25
name_list = []
phone_list = []
while 1:
    print('菜单：1.添加联系人 2.修改联系人 3.删除联系人')
    chioce = input("请输入选择：")
    # 1.添加联系人，包括姓名，手机号
    if chioce == "1":
        name_list.append(input("请输入联系人姓名："))
        phone_list.append(input("请输入联系人手机号："))
        print(name_list)
        print(phone_list)
    # 2.修改联系人信息
    elif chioce == "2":
        num = int(input("请输入联系人编号："))
        if len(name_list) > 0 and num <= len(name_list):
            name_list[num - 1] = input("修改联系人姓名")
            phone_list[num - 1] = input("修改联系人电话")
        else:
            print("联系人编号输入有误")
    # 删除联系人信息
    elif chioce == "3":
        num = int(input("请输入联系人编号："))
        if len(name_list) > 0 and num <= len(name_list):
            name_list.pop(num - 1)
            phone_list.pop(num - 1)
        else:
            print("联系人编号输入有误")
    else:
        print("显示联系人信息")
        print(name_list)
        print(phone_list)

print('---------------------------------------------')

# 查找元素index()列表名.index{要查找的元素，索引起始位置，索引结束位置}
ls1 = [1, 5, 7, 'a', 'b', 'c', 6, 4, 1]
print(ls1.index('a'))
print(ls1.index('a', 4))
print(ls1.index('c', 3, 7))

print('---------------------------------------------')

# count（）方法用来统计某个元素在列表中出现的次数 列表名。count（统计的value元素）
ls2 = [1, 2, 5, 7, 'a', 'b', 8, 3, 'b', 2, 5, 5, 7, 1]
print(ls2.count(8))
print(ls2.count(5))
print(ls2.count('f'))

print('---------------------------------------------')

# 1.元素是字符串的排序
ls3 = ['1', '2', '44', '', '23', '99', '88', '56', '233']
# 默认升序，reverse = False，不写
ls3.sort()
print(ls3)
# 降序 reverse=Ture
ls3.sort(reverse=True)
print(ls3)

# 2.元素是数值的排序
ls4 = [1, 3, 44, 23, 99, 88, 56, 233]
# 默认升序
ls4.sort()
print(ls4)
# 降序 reverse=Ture
ls4.sort(reverse=True)
print(ls4)

print('---------------------------------------------')

# 字典的创建
# 使用{} 创建字典语法格式：
d1 = {'python': 90, "可视化": 89, "英语": 85}
print(type(d1))

# 使用元组和数字作为key
d2 = {(23, 89): "great", 30: [1, 3, 4]}
print(type(d2))

# 创建空字典
d3 = {}
print(type(d3))

# 2.用dict（）方法通过关键字的参数来创建字典格式：
d4 = dict(数学=98, 语文=87, 英语=89)
print(d4)

print('---------------------------------------------')

# 字典元素的访问
# 1.字典名【key】
d5 = {'数学': 95, '英语': 92, '语文': 84}
print(d5['数学'])

# 2.get（） 方法来获取指定键对应的值，语法格式：字典名.get(key[ , default])
d6 = {'数学': 95, '英语': 92, '语文': 84}
print(d6.get('英语'))
print(d6.get('PYTHON'))
print(d6.get('英语', '该键不存在'))

print('-----------------------------------------')

# 字典添加键值对
d7 = {'数学': 95, '英语': 92, '语文': 84, 'Python': 99}
d7['可视化'] = 100
print(d7)

# 字典修改键值对
d8 = {'数学': 95, '英语': 92, '语文': 84, 'Python': 99}
d8['语文'] = 100
print(d8)

print('-----------------------------------------')

# 字典删除键值对
# 1.使用del关键字
d9 = {'数学': 95, '英语': 92, '语文': 84, 'Python': 99}
del d9['语文']
print(d9)

# 2.使用pop()方法
d9.pop('数学')
print(d9)